# 导包
import torch
import numpy as np
# todo 1.tensor(data,dtype)创建张量 指定数据和数据类型
print(torch.tensor(10).ndim)    # 此处10是数据
print(torch.tensor([10]).ndim)
print(torch.tensor([[10],[10]]).ndim)
# 通过列表创建张量
print(torch.tensor([[1,2,3],[4,5,6]]))
print(torch.tensor([[1,2,3],[4,5,6]]).dtype) # 默认都是torch.int64
# 通过numpy创建张良
print(torch.tensor(np.array([[1,2,3],[4,5,6]])))

print('-'* 200)
print(torch.tensor(np.array([[1,2,3],[4,5,6]]),dtype=torch.float32))
# dtype 可以直接指定类型
print('-'* 200)


# TODO 2.Tensor() 创建张量:注意:不带[]默认是形状 注意:Tensor没有dtype
print(torch.Tensor(10).ndim) # 此处10是形状,类似于生成10个数据 默认数据是0.
print(torch.Tensor(10)) # 此处10是形状,类似于生成10个数据 默认数据是0.
print(torch.Tensor([10]).ndim)
print(torch.Tensor())
print(torch.Tensor(2,3))
print(torch.Tensor(size = (2,3)))

print('-'* 200)
# TODO 3.IntTensor()/FloatTensor/LongTensor()/ShortTensor() 创建张量
print(torch.ByteTensor([1,2,3],[4,5,6]))
print(torch.ShortTensor([1,2,3],[4,5,6]))
print(torch.LongTensor([1,2,3],[4,5,6]))
print(torch.IntTensor([1,2,3],[4,5,6])) # 默认是int64
print(torch.HalfTensor([1,2,3],[4,5,6]))
print(torch.FloatTensor([1,2,3],[4,5,6])) # 默认float32
print(torch.DoubleTensor([1,2,3],[4,5,6]))
# 大写的Tensor只能通过上面的方式指定类型
# 小写的tensor可以通过参数dtype来指定类型




